// Camera.h 
//////////////////////////////////////////////////////////////////////

#if !defined CAMERA_H
#define CAMERA_H

#include "SceneObject.h"
#include "Vec4.h"
#include "Vec3.h"

#endif // CAMERA_H
class Camera : public SceneObject{
      private:
            //fovy=0.0f;   // increase/decrease y fov
            //aspect; // increase/decrease x fov
            //zNear; // near Z clipping plane
            //zFar; // far Z clipping plane
            Vec4 perspective;
            float eye[3]; //set eye parameters
            float center[3];//set center parameters
            float up[3];
            float color[3];
            Vec3 pos;
            bool active;
            Vec4 rot;
      public:
             Camera();
             virtual ~Camera();
     	     virtual RTTI_OBJECT_TYPE getType() const { return RTTI_CAMERA; };
     	     virtual void render(float timeElapsed);
 	         virtual void update(float timeElapsed)  { 
                      std::cout << "Updating [" << "Camera" << "] scene object " << std::endl; 
             }
             virtual void setCamera(){
                  active=true;
                  std::cout << "Setting Camera" << std::endl;
             }
             virtual void unsetCamera(){
                     active=false;
                     std::cout << "Un-Setting [" << "Camera" << "] scene object " << std::endl;
             }
             void setPos(Vec3 vec){pos=vec;}
             void setRot(Vec4 vec){rot=vec;}
             Vec3 getPos(){return pos;}
             void setPerspective(Vec4 vec){perspective=vec;}
             Vec4 getPerspective(){return perspective;}
};
